1. Technical Field
The present invention relates generally to Web Common Gateway Interface (CGI) transaction processing and more particularly to enabling CGI-based access to protected files (e.g., Web documents) stored in a secure distributed file system.
2. Description of the Related Art
The World Wide Web of the Internet is the most successful distributed application in the history of computing. In the Web environment, client machines effect transactions to Web servers using the Hypertext Transfer Protocol (HTTP), which is a known application protocol providing users access to files (e.g., text, graphics, images, sound, video, etc.) via a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows the developer to specify "links" to other servers and files. In the Internet paradigm, a network path to a server is identified by a so-called Uniform Resource Locator (URL) having a special syntax for defining a network connection.
Use of an HTML-compatible browser (e.g., Netscape Navigator or Microsoft Explorer) at a client machine involves specification of a link via the URL. In response, the client makes a request to the server identified in the link and receives in return a document formatted, for example, according to HTML.
Common Gateway Interface (CGI) programs are an important part of the HTTP server function. CGI is a World Wide Web standard for extending HTML functionality. CGI processing typically involves the combination of a live Web server and external programming scripts or executables. In particular, CGI programs are typically used to return dynamic information and to respond to HTTP browser input in HTML forms.
Many business organizations and other entities now desire to integrate Web transaction processing into their distributed computing environment in which users access distributed resources and process applications. A known distributed computing environment, called DCE, has been implemented using "open" software conforming to standards implemented from time-to-time by the Open Group (f/k/a the Open Systems Foundation (OSF)). As DCE environments become more popular, many applications have been written and utilized to provide distributed services such as data sharing, printing services and database access. Open Group DCE includes a distributed file system, called Distributed File Services (DFS), for use in these environments.
DFS provides many advantages over a standalone file server, such as higher availability of data and resources, the ability to share information throughout a very large-scale system, and protection of information by the robust DCE security mechanism. In particular, DFS makes files highly available through replication, making it possible to access a copy of a file if one of the machines where the file is located goes down. DFS also brings together all of the files stored in various file systems in a global namespace. Multiple servers can export their file system to this namespace. All DFS users, in the meantime, share this namespace, making all DFS files readily available from any DFS client machine.
It would be highly desirable to extend the functionality of existing standalone Web servers in the enterprise environment to take advantage of the scalability, file availability and security features of DFS (or other similar distributed file systems). As a by-product, users with an off-the-shelf browser would be able to easily access the Web information stored in the DFS namespace with no additional software on the client machine. CGI functionality would also be supported.
This goal, however, cannot be readily achieved, especially with respect to client-server based systems running a "closed" native operating system such as Microsoft Windows NT. Because of the "closed" nature of Windows NT, a user of a client machine running this operating system may only log on against an account held at the machine, at a server running the Windows NT operating system, or at any other servers that are "trusted" by the NT server that the client is configured against. Only these options are supplied to the user during the logon process, and there are no practical interfaces to allow user authentication from non-native server domains. This closed architecture eliminates the ability of the Web server to impersonate a user of Windows NT client machine and thereby access a protected DFS file, and CGI functionality is not supported.
A method of obtaining a DCE credential and making that credential available to a Netscape server process prior to accessing a file within a DFS filespace has been described in U.S. Pat. No. 5,918,228 to Rich et al. That patent is entitled "Method And Apparatus For Enabling A Web Server To Impersonate A User Of A Distributed File System To Obtain Secure Access To Supported Web Documents" and is assigned to the assignee of this application. The method described in this patent, however, does not work when the server process is supported on a Windows NT platform, and the above-described application does not provide CGI function support.
This invention addresses this need.